package com.zhentao;

import io.minio.MinioClient;
import io.minio.ObjectWriteResponse;
import io.minio.PutObjectArgs;
import io.minio.errors.*;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

public class TestUpload {

    public static void main(String[] args) throws IOException, ServerException, InvalidBucketNameException, InsufficientDataException, ErrorResponseException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
        //创建minio客户端
        MinioClient minioClient = MinioClient.builder().credentials("minioadmin", "minioadmin")
                .endpoint("http://192.168.199.129:19000").build();
        FileInputStream fileInputStream=new FileInputStream("E:\\freemarker\\test\\03.html");

        //2.执行上传操作  0上传的参数
        PutObjectArgs putObjectArgs = PutObjectArgs.builder()
                .bucket("testapi") // 指定要存储对象的存储桶名称
                .object("03.html") // 指定要上传的对象名称（键名）
                .contentType("text/html; charset=utf-8") // 指定要上传对象的内容类型 // 设置编码集
                //-1 minio在进行文件上传的时候，如果文件太大，会进行分片操作，默认大小是5M
                // 指定要上传的数据流、数据大小以及可选的分片大小（-1表示使用默认分片大小）
                .stream(fileInputStream, fileInputStream.available(), -1)
                .build();

        ObjectWriteResponse response = minioClient.putObject(putObjectArgs);
        String url = minioClient.getObjectUrl(putObjectArgs.bucket(), putObjectArgs.object());
        System.err.println(response);
        System.out.println(url);


    }
}
